
export function useFingerSwipe(elementRef, options = {}) {
  // 记录当前元素的垂直位移
  const y = ref(0);
  // 手指起始位置和元素初始位移
  let startY = 0;
  let initialY = 0;

  // 触摸开始：记录起始位置
  const handleTouchStart = (e) => {
    startY = e.touches[0].clientY; // 手指初始Y坐标
    initialY = y.value; // 元素当前位移
  };

  // 触摸移动：计算位移并更新
  const handleTouchMove = (e) => {
    if (!elementRef.value) return;

    const moveY = e.touches[0].clientY - startY; // 手指移动距离
    let newY = initialY + moveY; // 元素新位移

    // 边界限制（可选）
    if (options.maxY !== undefined && newY > options.maxY) {
      newY = options.maxY;
    }
    if (options.minY !== undefined && newY < options.minY) {
      newY = options.minY;
    }

    y.value = newY; // 更新位移
  };

  // 触摸结束：可扩展惯性/回弹逻辑
  const handleTouchEnd = () => {
    // 示例：如果滑出上边界，回弹到minY
    if (options.minY !== undefined && y.value < options.minY) {
      y.value = options.minY;
    }
  };

  // 绑定事件
  onMounted(() => {
    const el = elementRef.value;
    if (el) {
      el.addEventListener('touchstart', handleTouchStart);
      el.addEventListener('touchmove', handleTouchMove, { passive: false });
      el.addEventListener('touchend', handleTouchEnd);
    }
  });

  // 解绑事件（避免内存泄漏）
  onUnmounted(() => {
    const el = elementRef.value;
    if (el) {
      el.removeEventListener('touchstart', handleTouchStart);
      el.removeEventListener('touchmove', handleTouchMove);
      el.removeEventListener('touchend', handleTouchEnd);
    }
  });

  return { y };
}